//-------------------------------------------------------------------------------------------
//
// Note:
// Much of the menu structure defined here is accessed internally by CCMDs
// and menu generation code. If you want to design your own menus make sure
// that they are named identically and that links to all important submenus
// are present.
//
//-------------------------------------------------------------------------------------------

DEFAULTLISTMENU
{
	Font "BigFont", "Untranslated"
	IfGame(Doom, Chex)
	{
		Selector "M_SKULL1", -32, -5
		Linespacing 16
		Font "BigFont", "Red"
	}
	IfGame(Strife)
	{
		Selector "M_CURS1", -28, -5
		Linespacing 19
	}
	IfGame(Heretic, Hexen)
	{
		Selector "M_SLCTR1", -28, -1
		Linespacing 20
	}
}

//-------------------------------------------------------------------------------------------
//
// The main menu. There's a lot of differences here between the games
//
//-------------------------------------------------------------------------------------------

LISTMENU "MainMenu"
{
	IfGame(Doom, Chex)
	{
		StaticPatch 94, 2, "M_DOOM"
		Position 97, 72
		IfOption(ReadThis)
		{
			Position 97, 64
		}
	}
	IfGame(Strife)
	{
		StaticPatch 84, 2, "M_STRIFE"
		Position 97, 45
	}
	IfGame(Heretic)
	{
		StaticPatch 88, 0, "M_HTIC"
		StaticPatch 40, 10, "M_SKL01"
		StaticPatch 232, 10, "M_SKL00"
		Position 110, 56
	}
	IfGame(Hexen)
	{
		StaticPatch 88, 0, "M_HTIC"
		StaticPatch 37, 80, "FBULB0"
		StaticPatch 278, 80, "FBULA0"
		Position 110, 56
	}
	
	IfGame(Doom, Strife, Chex)
	{
		PatchItem "M_NGAME", "n", "PlayerclassMenu"
		ifOption(SwapMenu)
		{
			PatchItem "M_LOADG", "l", "LoadGameMenu"
			PatchItem "M_SAVEG", "s", "SaveGameMenu"
			PatchItem "M_OPTION","o", "OptionsMenu"
		}
		else
		{
			PatchItem "M_OPTION","o", "OptionsMenu"
			PatchItem "M_LOADG", "l", "LoadGameMenu"
			PatchItem "M_SAVEG", "s", "SaveGameMenu"
		}
		ifOption(ReadThis)
		{
			PatchItem "M_RDTHIS","r", "ReadThisMenu"
		}
		PatchItem "M_QUITG", "q", "QuitMenu"
	}
	
	IfGame(Heretic, Hexen)
	{
		TextItem "$MNU_NEWGAME", "n", "PlayerclassMenu"
		TextItem "$MNU_OPTIONS", "o", "OptionsMenu"
		TextItem "$MNU_GAMEFILES", "g", "GameFilesMenu"
		TextItem "$MNU_INFO", "i", "ReadThisMenu"
		TextItem "$MNU_QUITGAME", "q", "QuitMenu"
	}
}

//-------------------------------------------------------------------------------------------
//
// Important note about the following template menus:
// Don't even think about replacing them with something that's not an empty menu
// with some static elements only. Proper function is not guaranteed then.
//
//-------------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------
//
// The player class menu
// The init code will set the first item to 'autoselect' if it's the only one.
//
//-------------------------------------------------------------------------------------------

ListMenu "PlayerclassMenu"
{
	IfGame(Doom, Heretic, Hexen, Strife)
	{
		NetgameMessage "$NEWGAME"
	}
	IfGame(Chex)
	{
		NetgameMessage "$CNEWGAME"
	}

	IfGame(Doom, Strife, Chex)
	{
		StaticTextCentered 160, 15, "$MNU_CHOOSECLASS"
		Position 48, 63
		PlayerDisplay 220, 63, "20 00 00", "80 00 40"
		MouseWindow 0, 220
	}
	IfGame(Heretic)
	{
		StaticTextCentered 160, 15, "$MNU_CHOOSECLASS"
		Position 80, 50
		PlayerDisplay 220, 50, "20 00 00", "80 00 40"
		MouseWindow 0, 220
	}
	IfGame(Hexen)
	{
		StaticText 34, 24, "$MNU_CHOOSECLASS"
		Position 66, 58
		PlayerDisplay 174, 8, "00 07 00", "40 53 40"
		MouseWindow 0, 174
	}
	// The rest of this menu will be set up based on the actual player definitions.
}

//-------------------------------------------------------------------------------------------
//
// The episode menu
// The init code will set the first item to 'autoselect' if it's the only one.
//
//-------------------------------------------------------------------------------------------

ListMenu "EpisodeMenu"
{
	IfGame(Doom, Heretic, Hexen, Strife)
	{
		NetgameMessage "$NEWGAME"
	}
	IfGame(Chex)
	{
		NetgameMessage "$CNEWGAME"
	}

	IfGame(Doom, Chex)
	{
		Position 48, 63
		StaticPatch 54, 38, "M_EPISOD"
	}
	IfGame(Strife)
	{
		Position 48, 63
		StaticText 54, 38, "$MNU_EPISODE"
	}
	IfGame(Heretic, Hexen)
	{
		Position 80, 50
	}
	// items will be filled in by MAPINFO
}

//-------------------------------------------------------------------------------------------
//
// The skill menu
// Most of this will be filled in at runtime
//
//-------------------------------------------------------------------------------------------

ListMenu "SkillMenu"
{

	IfGame(Doom, Chex)
	{
		StaticPatch 96, 14, "M_NEWG"
	}
	IfGame(Strife)
	{
		StaticPatch 96, 14, "M_NGAME"
	}
	IfGame(Doom, Strife, Chex)
	{
		StaticPatch 54, 38, "M_SKILL"
		Position 48, 63
	}
	IfGame (Heretic)
	{
		Position 38, 30
	}
	IfGame (Hexen)
	{
		StaticText 74, 16, "$MNU_CHOOSESKILL"
		Position 160, 44
		centermenu
	}
}

//-------------------------------------------------------------------------------------------
//
// Raven's game files menu
//
//-------------------------------------------------------------------------------------------

ListMenu "GameFilesMenu"
{
	Position 110, 60
	TextItem "$MNU_LOADGAME", "l", "LoadGameMenu"
	TextItem "$MNU_SAVEGAME", "s", "SaveGameMenu"
}

//-------------------------------------------------------------------------------------------
//
// Base definition for load game menu. Only the configurable part is done here
//
//-------------------------------------------------------------------------------------------

ListMenu "LoadGameMenu"
{
	IfGame(Doom, Heretic, Hexen, Strife)
	{
		NetgameMessage "$LOADNET"
	}
	IfGame(Chex)
	{
		NetgameMessage "$CLOADNET"
	}
	IfGame(Doom, Strife, Chex)
	{
		StaticPatchCentered 160, -20, "M_LOADG"
	}
	IfGame(Heretic, Hexen)
	{
		StaticTextCentered 160, -10, "$MNU_LOADGAME"
	}
	Position 80,54
	Class "LoadMenu"	// uses its own implementation
}

//-------------------------------------------------------------------------------------------
//
// Base definition for save game menu. Only the configurable part is done here
//
//-------------------------------------------------------------------------------------------

ListMenu "SaveGameMenu"
{
	NetgameMessage "$SAVENET" // [TP] Zandronum doesn't allow the client to save the game.
	IfGame(Doom, Strife, Chex)
	{
		StaticPatchCentered 160, -20, "M_SAVEG"
	}
	IfGame(Heretic, Hexen)
	{
		StaticTextCentered 160, -10, "$MNU_SAVEGAME"
	}
	Position 80,54
	Class "SaveMenu"	// uses its own implementation
}

//-------------------------------------------------------------------------------------------
//
// The option menu
//
//-------------------------------------------------------------------------------------------

OptionValue "YesNo"
{
	0, "$TXT_NO"
	1, "$TXT_YES"
}

OptionValue "NoYes"
{
	0, "$TXT_YES"
	1, "$TXT_NO"
}

OptionValue "OnOff"
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_ON"
}

OptionValue "OffOn"
{
	0, "$OPTVAL_ON"
	1, "$OPTVAL_OFF"
}

OptionMenuSettings
{
	// These can be overridden if a different menu fonts requires it.
	Linespacing 8
	IfGame(Heretic, Hexen)
	{
		Linespacing 9
	}
}

DefaultOptionMenu
{
	Position -15
	IfGame(Heretic, Hexen)
	{
		Position -13
	}
}

// [TP] Zandronum additions, these get filled in by the engine
OptionValue ZA_Levels {}
OptionValue ZA_Bots {}
OptionValue ZA_Announcers {}
// [TP] --

OptionMenu "OptionsMenu"
{
	Title "$OPTMNU_TITLE"
	Submenu "Multiplayer Options",		"ZA_MultiplayerOptions" // [TP]
	StaticText " " // [TP]
	Submenu "$OPTMNU_CONTROLS",			"CustomizeControls"
	Submenu "$OPTMNU_MOUSE",			"MouseOptions"
	Submenu "$OPTMNU_JOYSTICK",			"JoystickOptions"
	StaticText " "
	Submenu "$OPTMNU_PLAYER",			"PlayerMenu"
	Submenu "$OPTMNU_GAMEPLAY",			"GameplayOptions"
	Submenu "$OPTMNU_COMPATIBILITY",	"CompatibilityOptions"
	Submenu "$OPTMNU_AUTOMAP",			"AutomapOptions"
	Submenu "$OPTMNU_HUD",				"HUDOptions"
	Submenu "$OPTMNU_MISCELLANEOUS",	"MiscOptions"
	Submenu "$OPTMNU_NETWORK",			"NetworkOptions"
	Submenu "$OPTMNU_SOUND",			"SoundOptions"
	Submenu "$OPTMNU_DISPLAY",			"VideoOptions"
	Submenu "$OPTMNU_VIDEO",			"VideoModeMenu"
	StaticText " "
	SafeCommand "$OPTMNU_DEFAULTS",	"reset2defaults"
	SafeCommand	"$OPTMNU_RESETTOSAVED",	"reset2saved"
	Command "$OPTMNU_CONSOLE",			"menuconsole"
}

//-------------------------------------------------------------------------------------------
//
// The player menu
//
//-------------------------------------------------------------------------------------------

OptionValue "Gender"
{
	0, "$OPTVAL_MALE"
	1, "$OPTVAL_FEMALE"
	2, "$OPTVAL_OTHER"
}

ListMenu "PlayerMenu"
{
	StaticTextCentered 160, 6, "$MNU_PLAYERSETUP"
	Font "SmallFont"
	Linespacing 14
	Position 48, 36

	IfGame (Doom, Strife, Chex)
	{
		PlayerNameBox "$PLYRMNU_NAME", 0, "Playerbox"
		Selector "-", -16, -1
	}
	IfGame(Heretic, Hexen)
	{
		PlayerNameBox "$PLYRMNU_NAME", 5, "Playerbox"
		Selector "-", -16, 1
	}
	IfGame(Doom, Heretic, Strife, Chex)
	{
		MouseWindow 0, 220
		PlayerDisplay 220, 80, "20 00 00", "80 00 40", 1, "PlayerDisplay"
	}
	IfGame(Hexen)
	{
		MouseWindow 0, 220
		PlayerDisplay 220, 80, "00 07 00", "40 53 40", 1, "PlayerDisplay"
	}
	
	// [TP] Zandronum does not store team in userinfo
	// ValueText "$PLYRMNU_TEAM", "Team"
	// [TP] For now Zandronum doesn't support colorsets either.
	// ValueText "$PLYRMNU_PLAYERCOLOR", "Color"
	Linespacing 10
	Slider "$PLYRMNU_RED", "Red", 0, 255, 16
	Slider "$PLYRMNU_GREEN", "Green", 0, 255, 16
	Linespacing 14
	Slider "$PLYRMNU_BLUE", "Blue", 0, 255, 16
	ValueText "$PLYRMNU_PLAYERCLASS", "Class"
	ValueText "$PLYRMNU_PLAYERSKIN", "Skin"
	ValueText "$PLYRMNU_PLAYERGENDER", "Gender", "Gender"
	Slider "$PLYRMNU_AUTOAIM", "Autoaim", 0, 35, 1
	Slider "Handicap", "Handicap", 0, 200, 5 // [TP]
	// [TP] This is moved to weapon setup
	// ValueText "$PLYRMNU_SWITCHONPICKUP", "Switch", "OffOn"
	ValueText "$PLYRMNU_ALWAYSRUN", "AlwaysRun", "OnOff"
	TextItem "Weapon Setup", "w", "ZA_WeaponSetup" // [TP]
	Class "PlayerMenu"
}

//-------------------------------------------------------------------------------------------
//
// Controls Menu
//
//-------------------------------------------------------------------------------------------

OptionValue JoinMenuKeys
{
	0.0, "Space"
	1.0, "Enter"
}

OptionMenu "CustomizeControls"
{
	Title "$CNTRLMNU_TITLE"
	ScrollTop 2
	StaticTextSwitchable 	"$CNTRLMNU_SWITCHTEXT1", "$CNTRLMNU_SWITCHTEXT2", "ControlMessage"
	StaticText 	""
	StaticText 	"$CNTRLMNU_CONTROLS", 1
	Control 	"$CNTRLMNU_ATTACK",					"+attack"
	Control 	"$CNTRLMNU_ALTATTACK",				"+altattack"
	Control 	"$CNTRLMNU_RELOAD",					"+reload"
	Control 	"$CNTRLMNU_ZOOM",					"+zoom"
	Control		"$CNTRLMNU_USER1",					"+user1"
	Control		"$CNTRLMNU_USER2",					"+user2"
	Control		"$CNTRLMNU_USER3",					"+user3"
	Control		"$CNTRLMNU_USER4",					"+user4"
	Control 	"$CNTRLMNU_USE",					"+use"
	Control 	"$CNTRLMNU_FORWARD",				"+forward"
	Control 	"$CNTRLMNU_BACK",					"+back"
	Control 	"$CNTRLMNU_MOVELEFT",				"+moveleft"
	Control 	"$CNTRLMNU_MOVERIGHT",				"+moveright"
	Control 	"$CNTRLMNU_TURNLEFT",				"+left"
	Control 	"$CNTRLMNU_TURNRIGHT",				"+right"
	Control		"$CNTRLMNU_TURN180",				"turn180"
	Control 	"$CNTRLMNU_JUMP",					"+jump"
	Control 	"$CNTRLMNU_CROUCH",					"+crouch"
	Control 	"$CNTRLMNU_TOGGLECROUCH",			"crouch"
	Control 	"$CNTRLMNU_MOVEUP",					"+moveup"
	Control 	"$CNTRLMNU_MOVEDOWN",				"+movedown"
	Control 	"$CNTRLMNU_LAND",					"land"
	Control 	"$CNTRLMNU_MOUSELOOK",				"+mlook"
	Control 	"$CNTRLMNU_KEYBOARDLOOK",			"+klook"
	Control 	"$CNTRLMNU_LOOKUP",					"+lookup"
	Control 	"$CNTRLMNU_LOOKDOWN",				"+lookdown"
	Control 	"$CNTRLMNU_CENTERVIEW",				"centerview"
	Control 	"$CNTRLMNU_RUN",					"+speed"
	Control 	"$CNTRLMNU_TOGGLERUN",				"toggle cl_run"
	Control 	"$CNTRLMNU_STRAFE",					"+strafe"
	Control 	"$CNTRLMNU_SCOREBOARD",				"+showscores"
	Control 	"$CNTRLMNU_TOGGLESCOREBOARD",		"togglescoreboard"
	Control		"Show medals",			"+showmedals" // [TP]
	StaticText 	""
	StaticText 	"$CNTRLMNU_CHAT", 1
	Control 	"$CNTRLMNU_SAY",					"messagemode"
	Control 	"$CNTRLMNU_TEAMSAY",				"messagemode2"
	StaticText 	""
	StaticText 	"$CNTRLMNU_WEAPONS", 1
	Control 	"$CNTRLMNU_NEXTWEAPON",				"weapnext"
	Control 	"$CNTRLMNU_PREVIOUSWEAPON",			"weapprev"
	Control		"$CNTRLMNU_SLOT1",					"slot 1"
	Control		"$CNTRLMNU_SLOT2",					"slot 2"
	Control		"$CNTRLMNU_SLOT3",					"slot 3"
	Control		"$CNTRLMNU_SLOT4",					"slot 4"
	Control		"$CNTRLMNU_SLOT5",					"slot 5"
	Control		"$CNTRLMNU_SLOT6",					"slot 6"
	Control		"$CNTRLMNU_SLOT7",					"slot 7"
	Control		"$CNTRLMNU_SLOT8",					"slot 8"
	Control		"$CNTRLMNU_SLOT9",					"slot 9"
	Control		"$CNTRLMNU_SLOT0",					"slot 0"
	StaticText 	""
	StaticText 	"$CNTRLMNU_INVENTORY", 1
	Control 	"$CNTRLMNU_USEITEM",				"invuse"
	Control 	"$CNTRLMNU_USEALLITEMS",			"invuseall"
	Control 	"$CNTRLMNU_NEXTITEM",				"invnext"
	Control 	"$CNTRLMNU_PREVIOUSITEM",			"invprev"
	Control 	"$CNTRLMNU_DROPITEM",				"invdrop"
	Control		"$CNTRLMNU_QUERYITEM",				"invquery"
	Control 	"$CNTRLMNU_DROPWEAPON",				"weapdrop"
	// [TP] Voting controls
	StaticText 	""
	StaticText 	"Voting", 1
	Control		"Vote yes",				"vote_yes"
	Control		"Vote no",				"vote_no"
	// [TP] --
	StaticText 	""
	StaticText 	"$CNTRLMNU_OTHER", 1
	Control 	"$CNTRLMNU_AUTOMAP",				"togglemap"
	Control 	"$CNTRLMNU_CHASECAM",				"chase"
	Control 	"$CNTRLMNU_COOPSPY",				"spynext"
	Control 	"$CNTRLMNU_SCREENSHOT",				"screenshot"
	Control		"Spectate",				"spectate" // [TP]
	Control		"Taunt",				"taunt" // [TP]
	Option		"Join the game",		"joinmenukey", "JoinMenuKeys" // [TP]
	Control		"Join the game (custom)", "menu_join" // [TP]
	Control  	"$CNTRLMNU_CONSOLE",				"toggleconsole"
	StaticText 	""
	StaticText 	"$CNTRLMNU_POPUPS", 1
	Control 	"$CNTRLMNU_MISSION",				"showpop 1"
	Control 	"$CNTRLMNU_KEYS",					"showpop 2"
	Control 	"$CNTRLMNU_STATS",					"showpop 3"
}

//-------------------------------------------------------------------------------------------
//
// Mouse Menu
//
//-------------------------------------------------------------------------------------------

OptionValue "Corners"
{
	-1, "$OPTVAL_OFF"
	0, "$OPTVAL_UPPERLEFT"
	1, "$OPTVAL_UPPERRIGHT"
	2, "$OPTVAL_LOWERLEFT"
	3, "$OPTVAL_LOWERRIGHT"
}

OptionValue "MenuMouse"
{
	0, "$TXT_NO"
	1, "$TXT_YES"
	2, "$OPTVAL_TOUCHSCREENLIKE"
}

OptionString "Cursors"
{
	"None", "$OPTVAL_DEFAULT"
	"cursor", "$OPTSTR_SIMPLEARROW"
	"doomcurs", "$OPTVAL_DOOM"
	"herecurs", "$OPTSTR_HERETIC"
	"hexncurs", "$OPTVAL_HEXEN"
	"strfcurs", "$OPTVAL_STRIFE"
	"chexcurs", "$OPTSTR_CHEX"
	"-", "$OPTSTR_SYSTEMCURSOR"
}

OptionMenu "MouseOptions"
{
	Title "$MOUSEMNU_TITLE"
	Option "$MOUSEMNU_ENABLEMOUSE",		"use_mouse", "YesNo"
	Option "$MOUSEMNU_MOUSEINMENU",		"m_use_mouse", "MenuMouse", "use_mouse"
	Option "$MOUSEMNU_SHOWBACKBUTTON",	"m_show_backbutton", "Corners", "use_mouse"
	Option "$MOUSEMNU_CURSOR",			"vid_cursor", "Cursors"
	StaticText 	""
	Slider "$MOUSEMNU_SENSITIVITY",		"mouse_sensitivity", 0.5, 2.5, 0.1
	Option "$MOUSEMNU_NOPRESCALE",		"m_noprescale", "NoYes"
	Option "$MOUSEMNU_SMOOTHMOUSE",		"smooth_mouse", "YesNo"
	StaticText 	""
	Slider "$MOUSEMNU_TURNSPEED",		"m_yaw", 0, 2.5, 0.1
	Slider "$MOUSEMNU_MOUSELOOKSPEED",	"m_pitch", 0, 2.5, 0.1
	Slider "$MOUSEMNU_FORWBACKSPEED",	"m_forward", 0, 2.5, 0.1
	Slider "$MOUSEMNU_STRAFESPEED",		"m_side", 0, 2.5, 0.1
	StaticText 	""
	Option "$MOUSEMNU_ALWAYSMOUSELOOK",	"freelook", "OnOff"
	Option "$MOUSEMNU_INVERTMOUSE",		"invertmouse", "OnOff"
	Option "$MOUSEMNU_LOOKSPRING",		"lookspring", "OnOff"
	Option "$MOUSEMNU_LOOKSTRAFE",		"lookstrafe", "OnOff"
}


//-------------------------------------------------------------------------------------------
//
// Joystick Menu
//
//-------------------------------------------------------------------------------------------

OptionMenu "JoystickOptions"
{
	Title "$JOYMNU_OPTIONS"
	// Will be filled in by joystick code.
}

OptionValue "JoyAxisMapNames"
{
	-1, "$OPTVAL_NONE"
	0, "$OPTVAL_TURNING"
	1, "$OPTVAL_LOOKINGUPDOWN"
	2, "$OPTVAL_MOVINGFORWARD"
	3, "$OPTVAL_STRAFING"
	4, "$OPTVAL_MOVINGUPDOWN"
}

OptionValue "Inversion"
{
	0, "$OPTVAL_NOTINVERTED"
	1, "$OPTVAL_INVERTED"
}

OptionMenu "JoystickConfigMenu"
{
	Title "$JOY_CONFIG"
	Class "JoystickConfigMenu"
	// Will be filled in by joystick code.
}


//-------------------------------------------------------------------------------------------
//
// Video Menu
//
//-------------------------------------------------------------------------------------------

OptionValue ColumnMethods
{
	0.0, "$OPTVAL_ORIGINAL"
	1.0, "$OPTVAL_OPTIMIZED"
}

OptionValue RocketTrailTypes
{
	0.0, "$OPTVAL_OFF"
	1.0, "$OPTVAL_PARTICLES"
	2.0, "$OPTVAL_SPRITES"
	3.0, "$OPTVAL_SPRITESPARTICLES"
}

OptionValue BloodTypes
{
	0.0, "$OPTVAL_SPRITES"
	1.0, "$OPTVAL_SPRITESPARTICLES"
	2.0, "$OPTVAL_PARTICLES"
}

OptionValue PuffTypes
{
	0.0, "$OPTVAL_SPRITES"
	1.0, "$OPTVAL_PARTICLES"
}

OptionValue Wipes
{
	0.0, "$OPTVAL_NONE"
	1.0, "$OPTVAL_MELT"
	2.0, "$OPTVAL_BURN"
	3.0, "$OPTVAL_CROSSFADE"
}

OptionValue Endoom
{
	0.0, "$OPTVAL_OFF"
	1.0, "$OPTVAL_ON"
	2.0, "$OPTVAL_ONLYMODIFIED"
}

OptionValue Contrast
{
	0.0, "$OPTVAL_OFF"
	1.0, "$OPTVAL_ON"
	2.0, "$OPTVAL_SMOOTH"
}

OptionValue Fuzziness
{
	0.0, "$OPTVAL_TRANSLUCENT"
	1.0, "$OPTVAL_FUZZ"
	2.0, "$OPTVAL_SHADOW"
}

// [TP]
OptionValue ZA_RespawnInvulEffects
{
	0.0, "None"
	1.0, "Skulltag"
	2.0, "ZDoom"
}

OptionMenu "OpenGLOptions"
{
	Title "$GLMNU_TITLE"
	Submenu "$GLMNU_DYNLIGHT",	"GLLightOptions"
	Submenu "$GLMNU_TEXOPT", 			"GLTextureGLOptions"
	Submenu "$GLMNU_PREFS", 				"GLPrefOptions"
}

OptionMenu "VideoOptions"
{
	Title "$DSPLYMNU_TITLE"
	
	Submenu "$DSPLYMNU_GLOPT", 			"OpenGLOptions"
	// [TP] Zandronum's scoreboard does not use these options
	// Submenu "$DSPLYMNU_SCOREBOARD", 			"ScoreboardOptions"
	StaticText " "
	Slider "$DSPLYMNU_SCREENSIZE",				"screenblocks", 3.0, 12.0, 1.0, 0

	Slider "$DSPLYMNU_GAMMA",			"Gamma",						0.75, 3.0, 0.05, 2
	Slider "$DSPLYMNU_BRIGHTNESS",				"vid_brightness",				-0.8,0.8, 0.05
	Slider "$DSPLYMNU_CONTRAST",					"vid_contrast",	   				0.1, 3.0, 0.1

	Option "$DSPLYMNU_VSYNC",					"vid_vsync", "OnOff"
	Option "$DSPLYMNU_CAPFPS",					"cl_capfps", "OffOn"

	StaticText " "
	Option "$DSPLYMNU_WIPETYPE",				"wipetype", "Wipes"

	IfOption(Windows)
	{
		Option	"$DSPLYMNU_SHOWENDOOM",			"showendoom", "Endoom"
		//Option "$DSPLYMNU_PALLETEHACK", 		"vid_palettehack", "OnOff"
		//Option "$DSPLYMNU_ATTACHEDSURFACES", 	"vid_attachedsurfaces", "OnOff"
	}
	
	Option "$DSPLYMNU_STRETCHSKY",				"r_stretchsky", "OnOff"
	Option "$DSPLYMNU_DRAWFUZZ",				"r_drawfuzz", "Fuzziness"
	Option "Respawn invul effect",		"cl_respawninvuleffect", "ZA_RespawnInvulEffects" // [TP]
	Slider "$DSPLYMNU_TRANSSOUL",				"transsouls", 0.25, 1.0, 0.05, 2
	Option "$DSPLYMNU_FAKECONTRAST",			"r_fakecontrast", "Contrast"
	Option "$DSPLYMNU_ROCKETTRAILS",			"cl_rockettrails", "RocketTrailTypes"
	Option "$DSPLYMNU_BLOODTYPE",				"cl_bloodtype", "BloodTypes"
	Option "$DSPLYMNU_PUFFTYPE",				"cl_pufftype", "PuffTypes"
	Slider "$DSPLYMNU_MAXPARTICLES",			"r_maxparticles", 100, 10000, 100, 0
	Slider "$DSPLYMNU_MAXDECALS",				"cl_maxdecals", 0, 10000, 100, 0
	Option "$DSPLYMNU_PLAYERSPRITES",			"r_drawplayersprites", "OnOff"
	Option "$DSPLYMNU_DEATHCAM",				"r_deathcamera", "OnOff"
	Option "$DSPLYMNU_TELEZOOM",				"telezoom", "OnOff"
	Slider "$DSPLYMNU_QUAKEINTENSITY",			"r_quakeintensity", 0.0, 1.0, 0.05, 2
	Option "$DSPLYMNU_NOMONSTERINTERPOLATION",	"nomonsterinterpolation", "NoYes"
	Slider "$DSPLYMNU_MENUDIM",					"dimamount", 0, 1.0, 0.05, 2
	ColorPicker "$DSPLYMNU_DIMCOLOR",			"dimcolor"
}

//-------------------------------------------------------------------------------------------
//
// HUD menu
//
//-------------------------------------------------------------------------------------------

OptionValue DisplayTagsTypes 
{
	0.0, "$OPTVAL_NONE"
	1.0, "$OPTVAL_ITEMS"
	2.0, "$OPTVAL_WEAPONS"
	3.0, "$OPTVAL_BOTH"
}

OptionValue TextColors
{
	0.0, "$C_BRICK"
	1.0, "$C_TAN"
	2.0, "$C_GRAY"
	3.0, "$C_GREEN"
	4.0, "$C_BROWN"
	5.0, "$C_GOLD"
	6.0, "$C_RED"
	7.0, "$C_BLUE"
	8.0, "$C_ORANGE"
	9.0, "$C_WHITE"
	10.0, "$C_YELLOW"
	11.0, "$C_DEFAULT"
	12.0, "$C_BLACK"
	13.0, "$C_LIGHTBLUE"
	14.0, "$C_CREAM"
	15.0, "$C_OLIVE"
	16.0, "$C_DARKGREEN"
	17.0, "$C_DARKRED"
	18.0, "$C_DARKBROWN"
	19.0, "$C_PURPLE"
	20.0, "$C_DARKGRAY"
	21.0, "$C_CYAN"
}

OptionValue Crosshairs
{
	// will be filled in from the XHAIRS lump
}

OptionValue ZDoomHexen
{
	0.0, "$OPTVAL_ZDOOM"
	1.0, "$OPTVAL_HEXEN"
}

OptionValue ZDoomStrife
{
	0.0, "$OPTVAL_ZDOOM"
	1.0, "$OPTVAL_STRIFE"
}

// [TP]
OptionValue ZA_VotingDisplay
{
	0, "Minimal"
	1, "Fullscreen"
}

// [TP]
OptionValue ZA_FullscreenHUD
{
	0, "Classic style"
	1, "New style"
}

OptionMenu "HUDOptions"
{
	Title "$HUDMNU_TITLE"
	Submenu "$HUDMNU_ALTHUD",				"AltHudOptions"
	Submenu "$HUDMNU_MESSAGE", 				"MessageOptions"
	StaticText " "
	Option "$HUDMNU_CROSSHAIR",				"crosshair", "Crosshairs"
	Option "$HUDMNU_FORCECROSSHAIR",		"crosshairforce", "OnOff"
	Option "$HUDMNU_GROWCROSSHAIR",			"crosshairgrow", "OnOff"
	ColorPicker "$HUDMNU_CROSSHAIRCOLOR", 	"crosshaircolor"
	Option "$HUDMNU_CROSSHAIRHEALTH",		"crosshairhealth", "OnOff"
	Option "$HUDMNU_CROSSHAIRSCALE",		"crosshairscale", "OnOff"
	Option "Voting display",			"cl_showfullscreenvote", "ZA_VotingDisplay"
	Option "Fullscreen HUD",			"cl_stfullscreenhud", "ZA_FullscreenHUD"
	StaticText " "
	Option "Large frag messages",		"cl_showlargefragmessages",	"YesNo" // [TP]
	Option "Draw coop info",			"cl_drawcoopinfo", "YesNo" // [TP]
	Option "$HUDMNU_NAMETAGS",				"displaynametags", "DisplayTagsTypes"
	Option "$HUDMNU_NAMETAGCOLOR",			"nametagcolor", "TextColors", "displaynametags"
	Option "$HUDMNU_SCALESTATBAR",			"st_scale", "OnOff"
	Option "$HUDMNU_SCALEFULLSCREENHUD",	"hud_scale", "OnOff"
	Option "$HUDMNU_OLDOUCH",				"st_oldouch", "OnOff"
	StaticText " "
	Option "$HUDMNU_HEXENFLASHES",			"pf_hexenweaps", "ZDoomHexen"
	Option "$HUDMNU_POISONFLASHES",			"pf_poison", "ZDoomHexen"
	Option "$HUDMNU_ICEFLASHES",			"pf_ice", "ZDoomHexen"
	Option "$HUDMNU_HAZARDFLASHES",			"pf_hazard", "ZDoomStrife"
}
	
//-------------------------------------------------------------------------------------------
//
// Alternative HUD
//
//-------------------------------------------------------------------------------------------

OptionValue "AMCoordinates"
{
	0, "$OPTVAL_PLAYER"
	1, "$OPTVAL_MAP"
}

OptionValue "AltHUDScale"
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_SCALETO640X400"
	2, "$OPTVAL_PIXELDOUBLE"
}

OptionValue "AltHUDAmmo"
{
	0, "$OPTVAL_CURRENTWEAPON"
	1, "$OPTVAL_AVAILABLEWEAPONS"
	2, "$OPTVAL_ALLWEAPONS"
}

OptionValue "AltHUDTime"
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_LEVELMILLISECONDS"
	2, "$OPTVAL_LEVELSECONDS"
	3, "$OPTVAL_LEVEL"
	4, "$OPTVAL_HUBSECONDS"
	5, "$OPTVAL_HUB"
	6, "$OPTVAL_TOTALSECONDS"
	7, "$OPTVAL_TOTAL"
	8, "$OPTVAL_SYSTEMSECONDS"
	9, "$OPTVAL_SYSTEM"
}

OptionValue "AltHUDLag"
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_NETGAMESONLY"
	2, "$OPTVAL_ALWAYS"
}

OptionMenu "AltHUDOptions"
{
	Title "$ALTHUDMNU_TITLE"
	//Indent 220
	Option "$ALTHUDMNU_ENABLE",					"hud_althud", "OnOff"
	Option "$ALTHUDMNU_SCALEHUD",				"hud_althudscale", "AltHUDScale"
	Option "$ALTHUDMNU_SHOWSECRETS",			"hud_showsecrets", "OnOff"
	Option "$ALTHUDMNU_SHOWMONSTERS",			"hud_showmonsters", "OnOff"
	Option "$ALTHUDMNU_SHOWITEMS",				"hud_showitems", "OnOff"
	Option "$ALTHUDMNU_SHOWSTATS",				"hud_showstats", "OnOff"
	Option "$ALTHUDMNU_SHOWBERSERK",			"hud_berserk_health", "OnOff"
	Option "$ALTHUDMNU_SHOWWEAPONS",			"hud_showweapons", "OnOff"
	Option "$ALTHUDMNU_SHOWAMMO",				"hud_showammo", "AltHUDAmmo"
	Option "$ALTHUDMNU_SHOWTIME",				"hud_showtime", "AltHUDTime"
	Option "$ALTHUDMNU_TIMECOLOR",				"hud_timecolor", "TextColors"
	Option "$ALTHUDMNU_SHOWLAG",				"hud_showlag", "AltHUDLag"
	Slider "$ALTHUDMNU_AMMORED",				"hud_ammo_red", 0, 100, 1, 0
	Slider "$ALTHUDMNU_AMMOYELLOW",				"hud_ammo_yellow", 0, 100, 1, 0
	Slider "$ALTHUDMNU_HEALTHRED",				"hud_health_red", 0, 100, 1, 0
	Slider "$ALTHUDMNU_HEALTHYELLOW",			"hud_health_yellow", 0, 100, 1, 0
	Slider "$ALTHUDMNU_HEALTHGREEN",			"hud_health_green", 0, 100, 1, 0
	Slider "$ALTHUDMNU_ARMORRED",				"hud_armor_red", 0, 100, 1, 0
	Slider "$ALTHUDMNU_ARMORYELLOW",			"hud_armor_yellow", 0, 100, 1, 0
	Slider "$ALTHUDMNU_ARMORGREEN",				"hud_armor_green", 0, 100, 1, 0
	StaticText " "
	StaticText "$ALTHUDMNU_AUTOMAPHUD", 1
	option "$ALTHUDMNU_TITLECOLOR",				"hudcolor_titl", "TextColors"
	option "$ALTHUDMNU_MAPTIMECOLOR",			"hudcolor_ltim", "TextColors"
	option "$ALTHUDMNU_HUBTIMECOLOR",			"hudcolor_time", "TextColors"
	option "$ALTHUDMNU_TOTALTIMECOLOR",			"hudcolor_ttim", "TextColors"
	option "$ALTHUDMNU_COORDINATECOLOR",		"hudcolor_xyco", "TextColors"
	option "$ALTHUDMNU_COORDINATEMODE",			"map_point_coordinates", "AMCoordinates"
	option "$ALTHUDMNU_STATSNAMECOLOR",			"hudcolor_statnames", "TextColors"
	option "$ALTHUDMNU_STATSCOLOR",				"hudcolor_stats", "TextColors"
}

//-------------------------------------------------------------------------------------------
//
// Misc menu
//
//-------------------------------------------------------------------------------------------

OptionValue Autosave
{
	0,	"$OPTVAL_ALWAYS"
	1,	"$OPTVAL_SCRIPTSONLY"
	2,	"$OPTVAL_NEVER"
}

OptionValue dehopt
{
	0,	"$OPTVAL_NEVER"
	1,	"$OPTVAL_ALL"
	2,	"$OPTVAL_ONLYLASTONE"
}

OptionMenu "MiscOptions"
{
	Title "$MISCMNU_TITLE"
	//Indent 220
	IfOption(Windows)
	{
		Option "$MISCMNU_MERGEKEYS", 			"k_mergekeys", "OnOff"
		Option "$MISCMNU_WINFULLSCREENTOGGLE",	"k_allowfullscreentoggle", "OnOff"
	}
	IfOption(Mac)
	{
		Option "$MISCMNU_MACFULLSCREENTOGGLE",	"k_allowfullscreentoggle", "OnOff"
	}
	Option "$MISCMNU_QUERYIWAD",				"queryiwad", "OnOff"
	StaticText " "
	Option "$MISCMNU_ALLCHEATS",				"allcheats", "OnOff"
	Option "$MISCMNU_ENABLEAUTOSAVES",			"disableautosave", "Autosave"
	Option "$MISCMNU_SAVELOADCONFIRMATION",			"saveloadconfirmation", "OnOff"
	Slider "$MISCMNU_AUTOSAVECOUNT",			"autosavecount", 1, 20, 1, 0
	Option "$MISCMNU_DEHLOAD",					"dehload", "dehopt"
	StaticText " "
	Option "$MISCMNU_CACHENODES",				"gl_cachenodes", "OnOff"
	Slider "$MISCMNU_CACHETIME",				"gl_cachetime", 0.0, 2.0, 0.1
	SafeCommand "$MISCMNU_CLEARNODECACHE",		"clearnodecache"
}

//-------------------------------------------------------------------------------------------
//
// Automap Menu
//
//-------------------------------------------------------------------------------------------

OptionValue MapColorTypes
{
	0, "$OPTVAL_CUSTOM"
	1, "$OPTVAL_TRADITIONALDOOM"
	2, "$OPTVAL_TRADITIONALSTRIFE"
	3, "$OPTVAL_TRADITIONALRAVEN"
}

OptionValue SecretTypes
{
	0, "$OPTVAL_NEVER"
	1, "$OPTVAL_ONLYWHENFOUND"
	2, "$OPTVAL_ALWAYS"
}

OptionValue RotateTypes
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_ON"
	2, "$OPTVAL_ONFOROVERLAYONLY"
}

OptionValue OverlayTypes
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_OVERLAYNORMAL"
	2, "$OPTVAL_OVERLAYONLY"
}

OptionValue MaplabelTypes
{
	0, "$OPTVAL_NEVER"
	1, "$OPTVAL_ALWAYS"
	2, "$OPTVAL_NOTFORHUBS"
}

OptionValue STSTypes
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_FRONT"
	2, "$OPTVAL_ANIMATED"
	3, "$OPTVAL_ROTATED"
}

OptionValue MapBackTypes
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_ON"
	2, "$OPTVAL_MAPDEFINEDCOLORSONLY"
}

OptionMenu AutomapOptions
{
	Title "$AUTOMAPMNU_TITLE"
	Option "$AUTOMAPMNU_COLORSET",				"am_colorset", "MapColorTypes"
	Option "$AUTOMAPMNU_CUSTOMCOLORS",			"am_customcolors", "YesNo"
	Submenu "$AUTOMAPMNU_SETCUSTOMCOLORS",		"MapColorMenu"
	Submenu "$AUTOMAPMNU_CONTROLS",				"MapControlsMenu"
	StaticText " "
	Option "$AUTOMAPMNU_ROTATE",				"am_rotate", "RotateTypes"
	Option "$AUTOMAPMNU_OVERLAY",				"am_overlay", "OverlayTypes"
	Option "$AUTOMAPMNU_TEXTURED",				"am_textured", "OnOff"
	Option "$AUTOMAPMNU_FOLLOW",				"am_followplayer", "OnOff"
	Option "$AUTOMAPMNU_PTOVERLAY",				"am_portaloverlay", "OnOff"
	StaticText " "
	Option "$AUTOMAPMNU_SHOWITEMS",				"am_showitems", "OnOff"
	Option "$AUTOMAPMNU_SHOWMONSTERS",			"am_showmonsters", "OnOff"
	Option "$AUTOMAPMNU_SHOWSECRETS",			"am_showsecrets", "OnOff"
	Option "$AUTOMAPMNU_SHOWTIME",				"am_showtime", "OnOff"
	Option "$AUTOMAPMNU_SHOWTOTALTIME",			"am_showtotaltime", "OnOff"
	Option "$AUTOMAPMNU_MAPSECRETS",			"am_map_secrets", "SecretTypes"
	Option "$AUTOMAPMNU_SHOWMAPLABEL",			"am_showmaplabel", "MaplabelTypes"
	Option "$AUTOMAPMNU_DRAWMAPBACK",			"am_drawmapback", "MapBackTypes"
	Option "$AUTOMAPMNU_SHOWKEYS",				"am_showkeys", "OnOff"
	Option "$AUTOMAPMNU_SHOWTRIGGERLINES",		"am_showtriggerlines", "OnOff"
	Option "$AUTOMAPMNU_SHOWTHINGSPRITES",		"am_showthingsprites", "STSTypes"
}

//-------------------------------------------------------------------------------------------
//
// Automap Controls
//
//-------------------------------------------------------------------------------------------

OptionMenu MapControlsMenu
{
	Title "$MAPCNTRLMNU_TITLE"
	ScrollTop 2
	StaticTextSwitchable 	"$CNTRLMNU_SWITCHTEXT1", "$CNTRLMNU_SWITCHTEXT2", "ControlMessage"
	StaticText 	""
	StaticText "$MAPCNTRLMNU_CONTROLS", 1
	MapControl "$MAPCNTRLMNU_PANLEFT",			"+am_panleft"
	MapControl "$MAPCNTRLMNU_PANRIGHT",			"+am_panright"
	MapControl "$MAPCNTRLMNU_PANUP",			"+am_panup"
	MapControl "$MAPCNTRLMNU_PANDOWN",			"+am_pandown"
	MapControl "$MAPCNTRLMNU_ZOOMIN",			"+am_zoomin"
	MapControl "$MAPCNTRLMNU_ZOOMOUT",			"+am_zoomout"
	MapControl "$MAPCNTRLMNU_TOGGLEZOOM",		"am_gobig"
	MapControl "$MAPCNTRLMNU_TOGGLEFOLLOW",		"am_togglefollow"
	MapControl "$MAPCNTRLMNU_TOGGLEGRID",		"am_togglegrid"
	MapControl "$MAPCNTRLMNU_TOGGLETEXTURE",	"am_toggletexture"
	MapControl "$MAPCNTRLMNU_SETMARK",			"am_setmark"
	MapControl "$MAPCNTRLMNU_CLEARMARK",		"am_clearmarks"
}

//-------------------------------------------------------------------------------------------
//
// Automap Colors
//
//-------------------------------------------------------------------------------------------

OptionMenu MapColorMenu
{
	Title "$MAPCOLORMNU_TITLE"
	SafeCommand "$MAPCOLORMNU_DEFAULTMAPCOLORS", 		"am_restorecolors"
	StaticText " "
	ColorPicker "$MAPCOLORMNU_BACKCOLOR",				"am_backcolor"		
	ColorPicker "$MAPCOLORMNU_YOURCOLOR",				"am_yourcolor"		
	ColorPicker "$MAPCOLORMNU_WALLCOLOR",				"am_wallcolor"		
	ColorPicker "$MAPCOLORMNU_FDWALLCOLOR",				"am_fdwallcolor"		
	ColorPicker "$MAPCOLORMNU_CDWALLCOLOR",				"am_cdwallcolor"		
	ColorPicker "$MAPCOLORMNU_EFWALLCOLOR",				"am_efwallcolor"		
	ColorPicker "$MAPCOLORMNU_GRIDCOLOR",				"am_gridcolor"		
	ColorPicker "$MAPCOLORMNU_XHAIRCOLOR",				"am_xhaircolor"		
	ColorPicker "$MAPCOLORMNU_NOTSEENCOLOR",			"am_notseencolor"		
	ColorPicker "$MAPCOLORMNU_LOCKEDCOLOR",				"am_lockedcolor"		
	ColorPicker "$MAPCOLORMNU_INTRALEVELCOLOR",			"am_intralevelcolor"	
	ColorPicker "$MAPCOLORMNU_INTERLEVELCOLOR",			"am_interlevelcolor"	
	ColorPicker "$MAPCOLORMNU_SECRETSECTORCOLOR",		"am_secretsectorcolor"	
	ColorPicker "$MAPCOLORMNU_SPECIALWALLCOLOR",		"am_specialwallcolor"
	ColorPicker "$MAPCOLORMNU_PORTAL",					"am_portalcolor"
	StaticText " "
	StaticText "$MAPCOLORMNU_CHEATMODE", 1
	ColorPicker "$MAPCOLORMNU_TSWALLCOLOR",				"am_tswallcolor"		
	ColorPicker "$MAPCOLORMNU_SECRETWALLCOLOR",			"am_secretwallcolor"	
	ColorPicker "$MAPCOLORMNU_THINGCOLOR",				"am_thingcolor"		
	ColorPicker "$MAPCOLORMNU_MONSTERCOLOR",			"am_thingcolor_monster"		
	ColorPicker "$MAPCOLORMNU_NONCOUNTINGMONSTERCOLOR",	"am_thingcolor_ncmonster"		
	ColorPicker "$MAPCOLORMNU_FRIENDCOLOR",				"am_thingcolor_friend"		
	ColorPicker "$MAPCOLORMNU_ITEMCOLOR",				"am_thingcolor_item"			
	ColorPicker "$MAPCOLORMNU_COUNTITEMCOLOR",			"am_thingcolor_citem"			
	StaticText " "
	StaticText "$MAPCOLORMNU_OVERLAY", 1
	ColorPicker "$MAPCOLORMNU_YOURCOLOR",				"am_ovyourcolor"		
	ColorPicker "$MAPCOLORMNU_WALLCOLOR",				"am_ovwallcolor"		
	ColorPicker "$MAPCOLORMNU_FDWALLCOLOR",				"am_ovfdwallcolor"		
	ColorPicker "$MAPCOLORMNU_CDWALLCOLOR",				"am_ovcdwallcolor"		
	ColorPicker "$MAPCOLORMNU_EFWALLCOLOR",				"am_ovefwallcolor"		
	ColorPicker "$MAPCOLORMNU_NOTSEENCOLOR",			"am_ovunseencolor"	
	ColorPicker "$MAPCOLORMNU_LOCKEDCOLOR",				"am_ovlockedcolor"
	ColorPicker "$MAPCOLORMNU_INTRALEVELCOLOR",			"am_ovtelecolor"		
	ColorPicker "$MAPCOLORMNU_INTERLEVELCOLOR",			"am_ovinterlevelcolor"	
	ColorPicker "$MAPCOLORMNU_SECRETSECTORCOLOR",		"am_ovsecretsectorcolor"	
	ColorPicker "$MAPCOLORMNU_SPECIALWALLCOLOR",		"am_ovspecialwallcolor"
	ColorPicker "$MAPCOLORMNU_PORTAL",					"am_ovportalcolor"
	StaticText " "
	StaticText "$MAPCOLORMNU_OVCHEATMODE", 1
	ColorPicker "$MAPCOLORMNU_TSWALLCOLOR",				"am_ovotherwallscolor"
	ColorPicker "$MAPCOLORMNU_SECRETWALLCOLOR",			"am_ovsecretwallcolor"
	ColorPicker "$MAPCOLORMNU_THINGCOLOR",				"am_ovthingcolor"
	ColorPicker "$MAPCOLORMNU_MONSTERCOLOR",			"am_ovthingcolor_monster"
	ColorPicker "$MAPCOLORMNU_NONCOUNTINGMONSTERCOLOR",	"am_ovthingcolor_ncmonster"	
	ColorPicker "$MAPCOLORMNU_FRIENDCOLOR",				"am_ovthingcolor_friend"
	ColorPicker "$MAPCOLORMNU_ITEMCOLOR",				"am_ovthingcolor_item"	
	ColorPicker "$MAPCOLORMNU_COUNTITEMCOLOR",			"am_ovthingcolor_citem"	
}

//-------------------------------------------------------------------------------------------
//
// Color Picker
//
//-------------------------------------------------------------------------------------------

OptionMenu ColorPickerMenu
{
	Title "$MNU_COLORPICKER"
	// This menu will be created by the calling code
}

//-------------------------------------------------------------------------------------------
//
// Messages
//
//-------------------------------------------------------------------------------------------


OptionValue ScaleValues
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_ON"
	2, "$OPTVAL_DOUBLE"
}

OptionValue MessageLevels
{
	0.0, "$OPTVAL_ITEMPICKUP"
	1.0, "$OPTVAL_OBITUARIES"
	2.0, "$OPTVAL_CRITICALMESSAGES"
}

// [TP]
OptionValue ZA_ChatSound
{
	0, "Off"
	1, "Default"
	2, "Doom 1"
	3, "Doom 2"
}

// [TP]
OptionValue ZA_ColorInMessages
{
	0, "Off"
	1, "On"
	2, "Not in chat"
}

OptionMenu MessageOptions
{
	Title 	"$MSGMNU_TITLE"
	SubMenu "Text scaling",				"ZA_TextScaling" // [TP]
	Option "$MSGMNU_SHOWMESSAGES",				"show_messages", "OnOff"
	Option "$MSGMNU_SHOWOBITUARIES",			"show_obituaries", "OnOff"
	Option "$MSGMNU_SHOWSECRETS",				"cl_showsecretmessage", "OnOff"
	Option "$MSGMNU_SCALETEXT", 				"con_scaletext", "ScaleValues"
	Option "Chat sound",				"chat_sound", "ZA_ChatSound" // [TP]
	Option "$MSGMNU_MESSAGELEVEL", 				"msg", "MessageLevels"
	Option "$MSGMNU_CENTERMESSAGES",			"con_centernotify", "OnOff"
	Option "Color in messages",			"con_colorinmessages", "ZA_ColorInMessages" // [TP]
	StaticText " "
	StaticText "$MSGMNU_MESSAGECOLORS", 1
	StaticText " "
	Option "$MSGMNU_ITEMPICKUP",				"msg0color", "TextColors"
	Option "$MSGMNU_OBITUARIES",				"msg1color", "TextColors"
	Option "$MSGMNU_CRITICALMESSAGES",			"msg2color", "TextColors"
	Option "$MSGMNU_CHATMESSAGES",				"msg3color", "TextColors"
	Option "$MSGMNU_TEAMMESSAGES",				"msg4color", "TextColors"
	Option "$MSGMNU_CENTEREDMESSAGES",			"msgmidcolor", "TextColors"
	StaticText " "
	Option "$MSGMNU_SCREENSHOTMESSAGES",		"screenshot_quiet",	"OffOn"
	Option "$MSGMNU_LONGSAVEMESSAGES",			"longsavemessages",	"OnOff"
}

//-------------------------------------------------------------------------------------------
//
// Scoreboard
//
//-------------------------------------------------------------------------------------------

OptionMenu ScoreboardOptions
{
	Title "$SCRBRDMNU_TITLE"
	StaticText "$SCRBRDMNU_COOPERATIVE", 1
	StaticText " "
	Option "$SCRBRDMNU_ENABLE",				"sb_cooperative_enable", "YesNo"
	Option "$SCRBRDMNU_HEADERCOLOR",		"sb_cooperative_headingcolor", "TextColors"
	Option "$SCRBRDMNU_YOURCOLOR",			"sb_cooperative_yourplayercolor", "TextColors"
	Option "$SCRBRDMNU_OTHERPLAYERCOLOR",	"sb_cooperative_otherplayercolor", "TextColors"
	StaticText " "
	StaticText " "
	StaticText "$SCRBRDMNU_DEATHMATCH", 1
	StaticText " "
	Option "$SCRBRDMNU_ENABLE",				"sb_deathmatch_enable",	"YesNo"
	Option "$SCRBRDMNU_HEADERCOLOR",		"sb_deathmatch_headingcolor", "TextColors"
	Option "$SCRBRDMNU_YOURCOLOR",			"sb_deathmatch_yourplayercolor", "TextColors"
	Option "$SCRBRDMNU_OTHERPLAYERCOLOR",	"sb_deathmatch_otherplayercolor", "TextColors"
	StaticText " "
	StaticText " "
	StaticText "$SCRBRDMNU_TEAMDEATHMATCH", 1
	StaticText " "
	Option "$SCRBRDMNU_ENABLE",				"sb_teamdeathmatch_enable", "YesNo"
	Option "$SCRBRDMNU_HEADERCOLOR",		"sb_teamdeathmatch_headingcolor", "TextColors"
}

/*=======================================
 *
 * Gameplay Options (dmflags) Menu
 *
 *=======================================*/
 
OptionValue  SmartAim
{
	0.0, "$OPTVAL_OFF"
	1.0, "$OPTVAL_ON"
	2.0, "$OPTVAL_NEVERFRIENDS"
	3.0, "$OPTVAL_ONLYMONSTERS"
}

OptionValue  FallingDM
{
	0, "$OPTVAL_OFF"
	1, "$OPTVAL_OLD"
	2, "$OPTVAL_HEXEN"
	3, "$OPTVAL_STRIFE"
}

OptionValue  JumpCrouchFreeLook
{
	0, "$OPTVAL_DEFAULT"
	1, "$OPTVAL_OFF"
	2, "$OPTVAL_ON"
}


OptionMenu GameplayOptions
{
	Title 	"$GMPLYMNU_TITLE"
	//Indent 222
	Option "$GMPLYMNU_TEAMPLAY",				"teamplay",	"OnOff"
	Slider	"$GMPLYMNU_TEAMDAMAGE",	"teamdamage", 0, 1, 0.05
	StaticText " "
	Option "$GMPLYMNU_SMARTAUTOAIM",			"sv_smartaim", "SmartAim"
	StaticText " "
	Option "$GMPLYMNU_FALLINGDAMAGE",			"sv_fallingdamage", "FallingDM"
	Option "$GMPLYMNU_DROPWEAPON",				"sv_weapondrop", "YesNo"
	Option "$GMPLYMNU_DOUBLEAMMO",				"sv_doubleammo", "YesNo"
	Option "$GMPLYMNU_INFINITEAMMO",			"sv_infiniteammo", "YesNo"
	Option "$GMPLYMNU_INFINITEINVENTORY",		"sv_infiniteinventory", "YesNo"
	Option "$GMPLYMNU_NOMONSTERS",				"sv_nomonsters", "YesNo"
	Option "$GMPLYMNU_NOMONSTERSTOEXIT",		"sv_killallmonsters", "YesNo"
	Option "$GMPLYMNU_MONSTERSRESPAWN",			"sv_monsterrespawn", "YesNo"
	Option "$GMPLYMNU_NORESPAWN",				"sv_norespawn", "YesNo"
	Option "$GMPLYMNU_ITEMSRESPAWN",			"sv_itemrespawn", "YesNo"
	Option "$GMPLYMNU_SUPERRESPAWN",			"sv_respawnsuper", "YesNo"
	Option "$GMPLYMNU_FASTMONSTERS",			"sv_fastmonsters", "YesNo"
	Option "$GMPLYMNU_DEGENERATION",			"sv_degeneration", "YesNo"
	Option "$GMPLYMNU_NOAUTOAIM",				"sv_noautoaim", "NoYes"
	Option "$GMPLYMNU_ALLOWSUICIDE",			"sv_disallowsuicide", "NoYes"
	Option "$GMPLYMNU_ALLOWJUMP",				"sv_jump", "JumpCrouchFreeLook"
	Option "$GMPLYMNU_ALLOWCROUCH",				"sv_crouch", "JumpCrouchFreeLook"
	Option "$GMPLYMNU_ALLOWFREELOOK",			"sv_freelook", "JumpCrouchFreeLook"
	Option "$GMPLYMNU_ALLOWFOV",				"sv_nofov", "NoYes"
	// [TP] Zandronum has this CVar under a different name
	// Option "$GMPLYMNU_BFGFREEAIM",				"sv_nobfgaim", "NoYes"
	Option "$GMPLYMNU_BFGFREEAIM",		"sv_bfgfreeaim", "YesNo"
	Option "$GMPLYMNU_ALLOWAUTOMAP",			"sv_noautomap", "NoYes"
	Option "$GMPLYMNU_AUTOMAPALLIES",			"sv_noautomapallies", "NoYes"
	Option "$GMPLYMNU_ALLOWSPYING",				"sv_disallowspying", "NoYes"
	Option "$GMPLYMNU_CHASECAM",				"sv_chasecam", "YesNo"
	Option "$GMPLYMNU_DONTCHECKAMMO",			"sv_dontcheckammo", "NoYes"
	Option "$GMPLYMNU_KILLBOSSSPAWNS",			"sv_killbossmonst", "YesNo"
	Option "$GMPLYMNU_NOCOUNTENDMONSTER",		"sv_nocountendmonst", "NoYes"
	// [TP] Zandronum dmflags
	Option "Allow player identification",	"sv_noidentifytarget", "NoYes"
	Option "Unblock players",		"sv_unblockplayers", "YesNo"
	Option "Unblock allies",		"sv_unblockallies", "YesNo"
	Option "Allow rocket jumping",	"sv_norocketjumping", "NoYes"
	Option "Allow item dropping",	"sv_nodrop", "NoYes"
	Option "Award damage dealt",	"sv_awarddamageinsteadkills", "YesNo"
	Option "Force OpenGL defaults",	"sv_forcegldefaults", "YesNo"
	Option "Force translucency",	"sv_forcealpha", "YesNo"
	Option "Full blood brightness",	"sv_maxbloodscalar", "YesNo"
	// [TP] --

	StaticText " "
	StaticText "$GMPLYMNU_DEATHMATCH",1
	Option "$GMPLYMNU_WEAPONSSTAY",				"sv_weaponstay", "YesNo"
	Option "$GMPLYMNU_ALLOWPOWERUPS",			"sv_noitems", "NoYes"
	Option "$GMPLYMNU_ALLOWHEALTH",				"sv_nohealth", "NoYes"
	Option "$GMPLYMNU_ALLOWARMOR",				"sv_noarmor", "NoYes"
	Option "$GMPLYMNU_SPAWNFARTHEST",			"sv_spawnfarthest", "YesNo"
	Option "$GMPLYMNU_SAMEMAP",					"sv_samelevel", "YesNo"
	Option "$GMPLYMNU_FORCERESPAWN",			"sv_forcerespawn", "YesNo"
	Option "$GMPLYMNU_ALLOWEXIT",				"sv_noexit", "NoYes"
	Option "$GMPLYMNU_BARRELSRESPAWN",			"sv_barrelrespawn", "YesNo"
	// [TP] Zandronum has this CVar under a different name
	// Option "$GMPLYMNU_RESPAWNPROTECTION",		"sv_respawnprotect", "YesNo"
	Option "$GMPLYMNU_RESPAWNPROTECTION",	"sv_norespawninvul", "NoYes"
	Option "$GMPLYMNU_LOSEFRAG",				"sv_losefrag", "YesNo"
	Option "$GMPLYMNU_KEEPFRAGS",				"sv_keepfrags", "YesNo"
	Option "$GMPLYMNU_NOTEAMSWITCH",			"sv_noteamswitch", "YesNo"
	// [TP] Zandronum deathmatch settings
	Option "Keep teams across levels", "sv_keepteams", "YesNo"
	Option "Apply LMS spectator settings",	"sv_applylmsspectatorsettings", "YesNo"
	Option "Medals",				"sv_nomedals", "NoYes"
	// [TP] --

	StaticText " "
	StaticText "$GMPLYMNU_COOPERATIVE",1
	Option "$GMPLYMNU_MULTIPLAYERWEAPONS",	 	"sv_noweaponspawn", "NoYes"
	// [TP] Zandronum uses different names for these CVars
	/*
	Option "$GMPLYMNU_LOSEINVENTORY",			"sv_cooploseinventory", "YesNo"
	Option "$GMPLYMNU_KEEPKEYS",				"sv_cooplosekeys", "NoYes"
	Option "$GMPLYMNU_KEEPWEAPONS",				"sv_cooploseweapons", "NoYes"
	Option "$GMPLYMNU_KEEPARMOR",				"sv_cooplosearmor", "NoYes"
	Option "$GMPLYMNU_KEEPPOWERUPS",			"sv_cooplosepowerups", "NoYes"
	Option "$GMPLYMNU_KEEPAMMO",				"sv_cooploseammo", "NoYes"
	Option "$GMPLYMNU_LOSEHALFAMMO",			"sv_coophalveammo", "YesNo"
	Option "$GMPLYMNU_SPAWNWHEREDIED",			"sv_samespawnspot", "YesNo"
	*/
	Option "$GMPLYMNU_LOSEINVENTORY",	"sv_coop_loseinventory", "YesNo"
	Option "$GMPLYMNU_KEEPKEYS",				"sv_coop_losekeys", "NoYes"
	Option "$GMPLYMNU_KEEPWEAPONS",			"sv_coop_loseweapons", "NoYes"
	Option "$GMPLYMNU_KEEPARMOR",			"sv_coop_losearmor", "NoYes"
	Option "$GMPLYMNU_KEEPPOWERUPS",			"sv_coop_losepowerups", "NoYes"
	Option "$GMPLYMNU_KEEPAMMO",				"sv_coop_loseammo", "NoYes"
	Option "Lose half ammo",		"sv_coop_halveammo", "YesNo"
	// [TP] Zandronum co-operative settings
	Option "Spawn singleplayer actors", "sv_coop_spactorspawn", "YesNo"
	Option "Share keys",			"sv_sharekeys", "YesNo"
	Option "Allow coop info",		"sv_nocoopinfo", "NoYes"
	// [TP] --
	Class "GameplayMenu"
}

/*=======================================
 *
 * Compatibility Options Menu
 *
 *=======================================*/


OptionValue CompatModes
{
	0, "$OPTVAL_DEFAULT"
	1, "$OPTVAL_DOOM"
	2, "$OPTVAL_DOOMSTRICT"
	3, "$OPTVAL_BOOM"
	6, "$OPTVAL_BOOMSTRICT"
	5, "$OPTVAL_MBF"
	4, "$OPTVAL_ZDOOM2063"
}

OptionMenu "CompatibilityOptions"
{
	Title "$CMPTMNU_TITLE"
	Option "$CMPTMNU_MODE",							"compatmode", "CompatModes", "", 1
	
	StaticText " "
	StaticText "$CMPTMNU_ACTORBEHAVIOR",1
	Option "$CMPTMNU_CORPSEGIBS",					"compat_CORPSEGIBS", "YesNo"	
	Option "$CMPTMNU_NOBLOCKFRIENDS",				"compat_NOBLOCKFRIENDS", "YesNo"
	Option "$CMPTMNU_LIMITPAIN",					"compat_LIMITPAIN", "YesNo"
	Option "$CMPTMNU_MBFMONSTERMOVE",				"compat_MBFMONSTERMOVE", "YesNo"
	Option "$CMPTMNU_CROSSDROPOFF",					"compat_CROSSDROPOFF", "YesNo"
	Option "$CMPTMNU_DROPOFF",						"compat_DROPOFF", "YesNo"
	Option "$CMPTMNU_INVISIBILITY",					"compat_INVISIBILITY", "YesNo"
	Option "$CMPTMNU_MINOTAUR",						"compat_MINOTAUR", "YesNo"
	Option "$CMPTMNU_NOTOSSDROPS",					"compat_NOTOSSDROPS", "YesNo"
	
	StaticText " "
	StaticText "$CMPTMNU_DEHACKEDBEHAVIOR",1
	Option "$CMPTMNU_DEHHEALTH",					"compat_DEHHEALTH", "YesNo"
	Option "$CMPTMNU_MUSHROOM",						"compat_MUSHROOM", "YesNo"
	
	StaticText " "
	StaticText "$CMPTMNU_MAPACTIONBEHAVIOR",1
	Option "$CMPTMNU_USEBLOCKING",					"compat_USEBLOCKING", "YesNo"
	Option "$CMPTMNU_ANYBOSSDEATH",					"compat_ANYBOSSDEATH", "YesNo"
	Option "$CMPTMNU_NODOORLIGHT",					"compat_NODOORLIGHT", "YesNo"
	Option "$CMPTMNU_LIGHT",						"compat_LIGHT", "YesNo"
	Option "$CMPTMNU_SHORTTEX",						"compat_SHORTTEX", "YesNo"
	Option "$CMPTMNU_STAIRS",						"compat_stairs", "YesNo"
	Option "$CMPTMNU_FLOORMOVE",					"compat_floormove", "YesNo"
	Option "$CMPTMNU_POINTONLINE",					"compat_pointonline", "YesNo"
	Option "$CMPTMNU_MULTIEXIT",					"compat_multiexit", "YesNo"
	
	StaticText " "
	StaticText "$CMPTMNU_PHYSICSBEHAVIOR",1
	Option "$CMPTMNU_NOPASSOVER",					"compat_nopassover", "YesNo"
	Option "$CMPTMNU_BOOMSCROLL",					"compat_BOOMSCROLL", "YesNo"
	Option "$CMPTMNU_BADANGLES",					"compat_badangles", "YesNo"
	Option "$CMPTMNU_WALLRUN",						"compat_WALLRUN", "YesNo"
	Option "$CMPTMNU_RAVENSCROLL",					"compat_RAVENSCROLL", "YesNo"
	Option "$CMPTMNU_TRACE",						"compat_TRACE", "YesNo"
	Option "$CMPTMNU_HITSCAN",						"compat_HITSCAN", "YesNo"
	Option "$CMPTMNU_MISSILECLIP",					"compat_MISSILECLIP", "YesNo"

	
	StaticText " "
	StaticText "$CMPTMNU_RENDERINGBEHAVIOR",1
	Option "$CMPTMNU_POLYOBJ",						"compat_POLYOBJ", "YesNo"
	Option "$CMPTMNU_MASKEDMIDTEX",					"compat_MASKEDMIDTEX", "YesNo"
	Option "$CMPTMNU_SPRITESORT",					"compat_SPRITESORT", "YesNo"
	
	StaticText " "
	StaticText "$CMPTMNU_SOUNDBEHAVIOR",1
	Option "$CMPTMNU_SOUNDSLOTS",					"compat_soundslots", "YesNo"
	Option "$CMPTMNU_SILENTPICKUP",					"compat_SILENTPICKUP", "YesNo"
	Option "$CMPTMNU_SILENTINSTANTFLOORS",			"compat_silentinstantfloors", "YesNo"
	Option "$CMPTMNU_SECTORSOUNDS",					"compat_SECTORSOUNDS", "YesNo"
	Option "$CMPTMNU_SOUNDCUTOFF",					"compat_soundcutoff", "YesNo"
	Option "$CMPTMNU_SOUNDTARGET",					"compat_SOUNDTARGET", "YesNo"

	// [TP] Zandronum compatibility settings
	StaticText " "
	StaticText "Old Zan/ST/ZDoom Compatibility",1
	Option "Limit air movement",						"compat_limited_airmovement", "YesNo"
	Option "Item grab like vanilla",					"compat_plasmabump", "YesNo"
	Option "Respawn instantly",							"compat_instantrespawn", "YesNo"
	Option "No taunts",									"compat_disabletaunts", "YesNo"
	Option "Use old intermission screens/music",		"compat_oldintermission", "YesNo"
	Option "No stealth monsters",						"compat_disablestealthmonsters", "YesNo"
	Option "Splash damage is infinitely tall",			"compat_oldradiusdmg", "YesNo"
	Option "No crosshairs",								"compat_nocrosshair", "YesNo"
	Option "Always switch weapons on pickup",			"compat_oldweaponswitch", "YesNo"
	Option "NET scripts are client-side",				"compat_netscriptsareclientside", "YesNo"
	Option "Clients send full button info",				"compat_clientssendfullbuttoninfo", "YesNo"
	Option "Forbid the 'land' console command",			"compat_noland", "YesNo"
	Option "Use the old pseudo-RNG",					"compat_oldrandom", "YesNo"
	Option "Spheres float like in Skulltag",			"compat_nogravity_spheres", "YesNo"
	Option "Player scripts resume after disconnect",	"compat_dont_stop_player_scripts_on_disconnect", "YesNo"
	Option "Explosion thrust like old ZDoom versions",	"compat_explosionthrust", "YesNo"
	Option "Dropped items pass through bridges",		"compat_bridgedrops", "YesNo"
	Option "Vertical movement like old ZDoom versions",	"compat_oldzdoomzmovement", "YesNo"
	Option "Weapons must be lowered fully",				"compat_fullweaponlower", "YesNo"
	Option "Auto-aiming has vertical holes",			"compat_autoaim", "YesNo"
	Option "West facing spawns are silent",				"compat_silentwestspawns", "YesNo"
	
	Class "CompatibilityMenu"
}

/*=======================================
 *
 * Sound Options Menu
 *
 *=======================================*/
 
OptionValue SampleRates
{
	0,		"$OPTVAL_DEFAULT"
	4000,	"$OPTVAL_4000HZ"
	8000,	"$OPTVAL_8000HZ"
	11025,	"$OPTVAL_11025HZ"
	22050,	"$OPTVAL_22050HZ"
	32000,	"$OPTVAL_32000HZ"
	44100,	"$OPTVAL_44100HZ"
	48000,	"$OPTVAL_48000HZ"
}


OptionValue BufferSizes
{
	   0, "$OPTVAL_DEFAULT"
	  64, "$OPTVAL_64SAMPLES"
	 128, "$OPTVAL_128SAMPLES"
	 256, "$OPTVAL_256SAMPLES"
	 512, "$OPTVAL_512SAMPLES"
	1024, "$OPTVAL_1024SAMPLES"
	2048, "$OPTVAL_2048SAMPLES"
	4096, "$OPTVAL_4096SAMPLES"
}


OptionValue BufferCounts
{
	   0, "$OPTVAL_DEFAULT"
	   2, "2"
	   3, "3"
	   4, "4"
	   5, "5"
	   6, "6"
	   7, "7"
	   8, "8"
	   9, "9"
	  10, "10"
	  11, "11"
	  12, "12"
}


OptionString SoundOutputsWindows
{
	"Default",		"$OPTVAL_DEFAULT"
	"DirectSound",	"$OPTSTR_DIRECTSOUND"
	"WASAPI",		"$OPTSTR_WASAPI"
	"ASIO",			"$OPTSTR_ASIO"
	"WaveOut",		"$OPTSTR_WAVEOUT"
	"No sound",		"$OPTSTR_NOSOUND"
}


OptionString SoundOutputsUnix
{
	"Default",		"$OPTVAL_DEFAULT"
	"OSS",			"$OPTSTR_OSS"
	"ALSA",			"$OPTSTR_ALSA"
	"SDL",			"$OPTSTR_SDL"
	"ESD",			"$OPTSTR_ESD"
	"PulseAudio",	"$OPTSTR_PULSEAUDIO"
	"No sound",		"$OPTSTR_NOSOUND"
}

OptionString SoundOutputsMac
{
	"Core Audio",		"$OPTSTR_COREAUDIO"
	"No sound",			"$OPTSTR_NOSOUND"
}

OptionString ALDevices
{
	// filled in by the sound code
}

OptionString OutputFormats
{
	"PCM-8",		"$OPTSTR_PCM8BIT"
	"PCM-16",		"$OPTSTR_PCM16BIT"
	"PCM-24",		"$OPTSTR_PCM24BIT"
	"PCM-32",		"$OPTSTR_PCM32BIT"
	"PCM-Float",	"$OPTSTR_PCMFLOAT"
}


OptionString SpeakerModes
{
	"Auto",		"$OPTSTR_AUTO"
	"Mono",		"$OPTSTR_MONO"
	"Stereo",	"$OPTSTR_STEREO"
	"Prologic",	"$OPTSTR_PROLOGIC"
	"Quad",		"$OPTSTR_QUAD"
	"Surround",	"$OPTSTR_SURROUND"
	"5.1",		"$OPTSTR_5POINT1"
	"7.1",		"$OPTSTR_7POINT1"
}


OptionString Resamplers
{
	"NoInterp",		"$OPTSTR_NOINTERPOLATION"
	"Linear",		"$OPTVAL_LINEAR"
	"Cubic",		"$OPTVAL_CUBIC"
	"Spline",		"$OPTSTR_SPLINE"
}


OptionString SoundBackends
{
	"fmod",		"$OPTSTR_FMOD"
	"openal",	"$OPTSTR_OPENAL"
	"null",		"$OPTSTR_NOSOUND"
}

OptionString SoundBackendsFModOnly
{
	"fmod",		"$OPTSTR_FMOD"
	"null",		"$OPTSTR_NOSOUND"
}

OptionString SoundBackendsOpenALOnly
{
	"openal",	"$OPTSTR_OPENAL"
	"null",		"$OPTSTR_NOSOUND"
}

OptionMenu FMODSoundItems
{
	Title "$FMODMNU_TITLE"
	Slider	"$FMODMNU_WATERCUTOFF",			"snd_waterlp", 0.0, 2000.0, 50.0, 0
	IfOption(Windows)
	{
		Option "$FMODMNU_OUTPUTSYSTEM",		"snd_output", "SoundOutputsWindows"
	}
	IfOption(Unix)
	{
		Option "$FMODMNU_OUTPUTSYSTEM",		"snd_output", "SoundOutputsUnix"
	}
	IfOption(Mac)
	{
		Option "$FMODMNU_OUTPUTSYSTEM",		"snd_output", "SoundOutputsMac"
	}
	Option "$FMODMNU_OUTPUTFORMAT",			"snd_output_format", "OutputFormats"
	Option "$FMODMNU_SPEAKERMODE",			"snd_speakermode", "SpeakerModes"
	Option "$FMODMNU_RESAMPLER",			"snd_resampler", "Resamplers"
	Option "$FMODMNU_HRTFFILTER",			"snd_hrtf", "OnOff"
	StaticText " "
	Option "$FMODMNU_BUFFERSIZE",			"snd_buffersize", "BufferSizes"
	Option "$FMODMNU_BUFFERCOUNT",			"snd_buffercount", "BufferCounts"
}


OptionMenu OpenALSoundItems
{
	Title "$OPENALMNU_TITLE"
	Option "$OPENALMNU_PLAYBACKDEVICE",		"snd_aldevice",	"ALDevices"
	Option "$OPENALMNU_ENABLEEFX",			"snd_efx",		"OnOff"
}


OptionValue MidiDevices
{
	// filled in by the sound code
}

OptionMenu SoundOptions
{
	Title "$SNDMNU_TITLE"
	Slider "$SNDMNU_SFXVOLUME",			"snd_sfxvolume", 0, 1, 0.05, 2
	Slider "$SNDMNU_MENUVOLUME",		"snd_menuvolume", 0, 1, 0.05, 2
	Slider "$SNDMNU_MUSICVOLUME",		"snd_musicvolume", 0, 1, 0.05, 2
	Slider "Announcer volume",	"snd_announcervolume", 0, 1, 0.05 // [TP]
	Option "Announcer",			"cl_announcer", "ZA_Announcers" // [TP]
	Option "$SNDMNU_MIDIDEVICE",		"snd_mididevice", "MidiDevices"
	StaticText " "
	Option "$SNDMNU_UNDERWATERREVERB",	"snd_waterreverb", "OnOff"
	Option "$SNDMNU_RANDOMIZEPITCHES",	"snd_pitched", "OnOff"
	Slider "$SNDMNU_CHANNELS",			"snd_channels", 8, 256, 8, 0
	Option "Play connect sound", "cl_connectsound", "YesNo" // [TP]
	Option "Multiple announcer sounds", "cl_allowmultipleannouncersounds", "YesNo" // [TP]
	StaticText " "

	ifoption(fmodex)
	{
		ifoption(openal)
		{
			Option "$SNDMNU_BACKEND",		"snd_backend", "SoundBackends"
		}
		else
		{
			Option "$SNDMNU_BACKEND",		"snd_backend", "SoundBackendsFModOnly"
		}
	}
	else
	{
		ifoption(openal)
		{
			Option "$SNDMNU_BACKEND",		"snd_backend", "SoundBackendsOpenALOnly"
		}
	}
	
	ifoption(fmodex)
	{
		Submenu "$SNDMNU_FMOD",			"FMODSoundItems"
	}
	ifoption(openal)
	{
		Submenu "$SNDMNU_OPENAL",		"OpenALSoundItems"
	}
	StaticText " "
	Command "$SNDMNU_RESTART",			"snd_reset"

	StaticText " "
	Submenu "$SNDMNU_ADVANCED",			"AdvSoundOptions"
	Submenu "$SNDMNU_MODREPLAYER",		"ModReplayerOptions"
}

/*=======================================
 *
 * Advanced Sound Options Menu
 *
 *=======================================*/

OptionValue GusMemory
{
	0, "$OPTVAL_UNLIMITED"
	1, "$OPTVAL_256K"
	2, "$OPTVAL_512K"
	3, "$OPTVAL_768K"
	4, "$OPTVAL_1024K"
}

OptionValue OplCores
{
	0, "$OPTVAL_MAMEOPL2"
	1, "$OPTVAL_DOSBOXOPL3"
	2, "$OPTVAL_JAVAOPL3"
	3, "$OPTVAL_NUKEDOPL3"
}

OptionMenu AdvSoundOptions
{
	Title "$ADVSNDMNU_TITLE"
	Option "$ADVSNDMNU_SAMPLERATE",			"snd_samplerate", "SampleRates"
	StaticText " "
	StaticText "$ADVSNDMNU_OPLSYNTHESIS",	1
	Slider "$ADVSNDMNU_OPLNUMCHIPS", 		"opl_numchips", 1, 8, 1, 0
	Option "$ADVSNDMNU_OPLFULLPAN",			"opl_fullpan", "OnOff"
	Option "$ADVSNDMNU_OPLCORES", 			"opl_core", "OplCores"
	StaticText " "
	StaticText "$ADVSNDMNU_GUSEMULATION",	1
	TextField "$ADVSNDMNU_GUSCONFIG", 		"midi_config"
	Slider "$ADVSNDMNU_MIDIVOICES",			"midi_voices", 16, 256, 4, 0
	Option "$ADVSNDMNU_DMXGUS", 			"midi_dmxgus", "OnOff"
	Option "$ADVSNDMNU_GUSMEMSIZE", 		"gus_memsize", "GusMemory"
	StaticText " "
	StaticText "$ADVSNDMNU_FLUIDSYNTH",	1
	TextField "$ADVSNDMNU_FLUIDPATCHSET", 	"fluid_patchset"
	Slider "$ADVSNDMNU_FLUIDGAIN",			"fluid_gain", 0, 10, 0.5, 1
	Option "$ADVSNDMNU_REVERB", 			"fluid_reverb", "OnOff"
	Slider "$ADVSNDMNU_FLUIDVOICES", 		"fluid_voices", 16, 4096, 16, 1
	// Leaving out the more advanced stuff for now.
	StaticText " "
	StaticText "$ADVSNDMNU_TIMIDITY",	1
	TextField "$ADVSNDMNU_TIMIDITYEXE", 	"timidity_exe"
	Option "$ADVSNDMNU_REVERB", 			"timidity_reverb", "OnOff"
	Option "$ADVSNDMNU_TIMIDITYCHORUS", 	"timidity_chorus", "OnOff"
	Slider "$ADVSNDMNU_TIMIDITYVOLUME",		"timidity_mastervolume", 0, 4, 0.2, 1
	StaticText " "
	StaticText "$ADVSNDMNU_WILDMIDI",	1
	TextField "$ADVSNDMNU_WILDMIDICONFIG", 	"wildmidi_config"
	Option "$ADVSNDMNU_REVERB", 			"wildmidi_reverb", "OnOff"
}

/*=======================================
 *
 * Module Replayer Options Menu
 *
 *=======================================*/

OptionValue ModReplayers
{
	0.0, "$OPTVAL_SOUNDSYSTEM"
	1.0, "$OPTVAL_FOO_DUMB"
}


OptionValue ModQuality
{
	0.0, "$OPTVAL_ALIASING"
	1.0, "$OPTVAL_LINEAR"
	2.0, "$OPTVAL_CUBIC"
	3.0, "$OPTVAL_BLEP"		// Band-limited step
	4.0, "$OPTVAL_LINEARSLOW"
	5.0, "$OPTVAL_BLAM"		// Band-limited linear
	6.0, "$OPTVAL_CUBICSLOW"
	7.0, "$OPTVAL_SINC"
}


OptionValue ModVolumeRamps
{
	0.0, "$OPTVAL_NONE"
	1.0, "$OPTVAL_NOTEONOFFONLY"
	2.0, "$OPTVAL_FULLRAMPING"
}


OptionMenu ModReplayerOptions
{
	Title "$MODMNU_TITLE"
	Option "$MODMNU_REPLAYERENGINE",		"mod_dumb", "ModReplayers"
	StaticText " "
	Slider "$MODMNU_MASTERVOLUME",			"mod_dumb_mastervolume", 1, 16, 0.5, 1
	Option "$ADVSNDMNU_SAMPLERATE",			"mod_samplerate", "SampleRates", "mod_dumb"
	Option "$MODMNU_QUALITY",				"mod_interp", "ModQuality", "mod_dumb"
	Option "$MODMNU_VOLUMERAMPING",			"mod_volramp", "ModVolumeRamps", "mod_dumb"
	StaticText " "
	Option "$MODMNU_CHIPOMATIC",			"mod_autochip", "OnOff", "mod_dumb"
	// TODO if the menu system is ever rewritten: Provide a decent
	// mechanism to edit the chip-o-matic settings like you can with
	// the foo_dumb preferences in foobar2000.
}

/*=======================================
 *
 * Video mode menu
 *
 *=======================================*/

OptionValue ForceRatios
{
	0.0, "$OPTVAL_OFF"
	3.0, "4:3"
	1.0, "16:9"
	5.0, "17:10"
	2.0, "16:10"
	4.0, "5:4"
	6.0, "21:9"
}
OptionValue Ratios
{
	0.0, "4:3"
	1.0, "16:9"
	2.0, "16:10"
	3.0, "17:10"
	6.0, "21:9"
	 -1, "$OPTVAL_ALL"
}
OptionValue RatiosTFT
{
	0.0, "4:3"
	4.0, "5:4"
	1.0, "16:9"
	2.0, "16:10"
	3.0, "17:10"
	6.0, "21:9"
	 -1, "$OPTVAL_ALL"
}

// [BB]
OptionValue Renderers
{
	0.0, "Software"
	1.0, "OpenGL"
}

OptionMenu VideoModeMenu
{
	Title "$VIDMNU_TITLE"
	
	Option "$VIDMNU_FULLSCREEN",		"fullscreen", "YesNo"
	IfOption(Mac)
	{
		Option "$VIDMNU_HIDPI",			"vid_hidpi", "YesNo"
	}
	Option "$VIDMNU_ASPECTRATIO",		"menu_screenratios", "Ratios"
	// [BB]
	Option "Renderer",			"vid_renderer", "Renderers"
	Option "$VIDMNU_FORCEASPECT",		"vid_aspect", "ForceRatios"
	Option "$VIDMNU_5X4ASPECTRATIO",	"vid_tft", "YesNo"
	StaticText " "
	ScreenResolution "res_0"
	ScreenResolution "res_1"
	ScreenResolution "res_2"
	ScreenResolution "res_3"
	ScreenResolution "res_4"
	ScreenResolution "res_5"
	ScreenResolution "res_6"
	ScreenResolution "res_7"
	ScreenResolution "res_8"
	ScreenResolution "res_9"
	StaticTextSwitchable "$VIDMNU_ENTERTEXT", "", "VMEnterText"
	StaticText " "
	StaticTextSwitchable "$VIDMNU_TESTTEXT1", "$VIDMNU_TESTTEXT2", "VMTestText"
	class VideoModeMenu
}

/*=======================================
 *
 * Network options menu
 *
 *=======================================*/

OptionMenu NetworkOptions
{
	Title "$NETMNU_TITLE"
	StaticText "$NETMNU_LOCALOPTIONS", 1
	Option "$NETMNU_MOVEPREDICTION",		"cl_noprediction", "OffOn"
	Option "$NETMNU_LINESPECIALPREDICTION",	"cl_predict_specials", "OnOff"
	Slider "$NETMNU_PREDICTIONLERPSCALE",	"cl_predict_lerpscale", 0.0, 0.5, 0.05
	Slider "$NETMNU_LERPTHRESHOLD",			"cl_predict_lerpthreshold", 0.1, 16.0, 0.1
	StaticText " "
	StaticText "$NETMNU_HOSTOPTIONS", 1
	Option "$NETMNU_EXTRATICS",				"net_extratic", "ExtraTicMode"
	Option "$NETMNU_TICBALANCE",			"net_ticbalance", "OnOff"
	
}

OptionValue ExtraTicMode
{
	0, "$OPTVAL_NONE"
	1, "1"
	2, "$OPTVAL_ALLUNACKNOWLEDGED"
}
